Материалы
11 лет назад
Soundscape - профессиональная озвучка карты
В этом туториале я расскажу, как сделать профессиональную озвучку карты с помощью env_soundscape_triggerable и trigger_soundscape, а также как сделать soundscape-скрипт
Если вы начали читать данную статью, то подразумевается, что вы ознакомились с основами всех энтити-объектов, знаете, что такое система OutPut - InPut, как с ней работать и уже имеете опыт в маппинге и несколько сделанных карт, которые состоят не только из коробок и кубиков (хотя бы такого же уровня, как моя карта
cs_reactor) + у вас есть желание развиваться дальше. Новичок ничего из нижеизложенного не поймёт.
Прежде чем читать дальше, рекомендую ознакомиться с энтитями
trigger_soundscape,
env_soundscape и
env_soundscape_triggerable в справочнике, чтобы мне лишний раз не повторять написанное там и, дав вам несколько советов, сразу перейти к созданию скрипта озвучки.
Правда, кое-что придётся повторить. Итак,
soundscape. Что же это такое? Карта делится на несколько зон, каждая из которой имеет свой набор звуков (звуки, исходящие из различных объектов, звуки атмосферы). Когда игрок покидает одну зону и переходит к следующей, звуки плавно сменяются на другие, например, выход из дома на улицу. Но при компиляции такие зоны и наборы звуков сами собой не появляются, всё это делают создатели карты. Сейчас мы и рассмотрим процесс их создания.
Есть 2 варианта их расстановки: триггерами, которые будут активировать нужный набор звуков при прохождении игрока через него, и точечными энтитями env_soundscape, которые активируют набор звуков, когда игрок попадает в область действия энтити и видит её. На мой взгляд, способ с триггерами куда лучше. Игрок в любом случае пройдёт через триггер, а точечную энтити может не заметить, если пройдёт спиной к ней, поэтому в данном туториале мы будем обсуждать только способ с триггерами.
Итак, вот ваша карта. Рассмотрите, на какие soundscape-зоны можно её разделить. К примеру, у станции метро и тоннеля для поездов разные звуки, поэтому это должны быть разные зоны. Ванная комната и кухня, лес и озеро, крыша высотки и парковка перед ней, улица и канализация под ней - всё это желательно должны быть разные зоны.
Каждая граница между зонами должна иметь 2 триггера (
trigger_soundscape), оба находятся на своих зонах и активируют каждый свою. У каждой зоны должен быть свой
env_soundscape_triggerable (имя которого и надо вписать в параметр
Soundscape Triggerable Name триггеров для данной зоны), который можно поставить в любом месте карты, он нужен будет только для работы наших триггеров и настройки звуков. Как вы уже, наверное, поняли из справочника, для каждого
env_soundscape_triggerable нужно указать имя набора звуков, а также можно указать до 8 точек, откуда будут доноситься звуки (это могут быть обычные
info_target), запрограммированные в скрипте. Всё это вы сможете настроить, если прочитали про данные энтити в справочнике, поэтому теперь перейдём к созданию скрипта.
Скрипт должен находиться в папке /cstrike/scripts/ и иметь имя soundscapes_[название карты].txt, где "[название карты]" - имя вашей карты, например, если карта называется de_mymap, то скрипт имеет имя soundscapes_de_mymap.txt. Не забывайте переименовывать имя файла скрипта, если вдруг меняете имя своей карты!
Как вы поняли, скрипт является обычным текстовым файлом и его содержимое с успехом может создаваться в блокноте. Скрипт должен иметь такую структуру:
[имя набора звуков]
{
[параметр набора звуков 1]
[параметр набора звуков 2]
...
[правило для звука 1]
{
[параметр 1]
[параметр 2]
...
}
[правило для звука 2]
{
...
}
...
} Например, так:
"t_spawn"
{
"dsp" "1"
"playlooping"
{
"volume" "0.7"
"pitch" "110"
"wave" "ambient\atmosphere\undercity_loop1.wav"
}
} С именем набора звуков, думаю, всё понятно, ставим своё и вписываем его в env_soundscape_triggerable для нашей зоны в параметр Soundscape. Теперь поговорим о параметрах набора.
dsp (0/1, по умолчанию 0) - будет ли использован эффект эха
dsp_volume (0-1) - насколько сильный будет эффект эха, по умолчанию сила эха расчитывается по окружающей обстановке: размеру пространства, окружающим материалам.
Вот и все параметры. Теперь какие бывают правила для звуков и их параметры:
playlooping - бесконечно играющий звук
soundmixer (по умолчанию "Default_Mix") - имя набора эффектов для всех звуков, параметры эффектов указаны в файле soundmixers.txt (папка scripts)
volume (0 и выше, по умолчанию 1) - громкость звука
pitch (0 и выше) - радиус распространения звука
soundlevel - сила звука, от этого свойства зависят параметры volume и attenuation, по умолчанию нет. Список возможных параметров: SNDLVL_20dB, SNDLVL_25dB, SNDLVL_30dB, SNDLVL_35dB, SNDLVL_40dB, SNDLVL_45dB, SNDLVL_50dB, SNDLVL_55dB, SNDLVL_IDLE, SNDLVL_65dB, SNDLVL_STATIC, SNDLVL_70dB, SNDLVL_NORM, SNDLVL_80dB, SNDLVL_TALKING, SNDLVL_85dB, SNDLVL_90dB, SNDLVL_95dB, SNDLVL_100dB, SNDLVL_105dB, SNDLVL_110dB, SNDLVL_120dB, SNDLVL_125dB, SNDLVL_130dB, SNDLVL_GUNFIRE, SNDLVL_140dB, SNDLVL_145dB, SNDLVL_150dB, SNDLVL_180dB. Как вы поняли, этот параметр - уровень децибел, подробнее об этом можно найти в википедии
position (0-7) - указанная позиция для звука, если не указано, звук играет везде
position random - если присутствует данный параметр, позиция звука определяется случайным образом рядом с игроком
attenuation (0 и выше) - коэффициент затухания звука
wave - путь к звуку
playrandom - звук, который воспроизводится случайным образом через случайные промежутки времени по заданным параметрам.
параметры такие же, как у правила выше, с одним исключением: параметры можно сделать со случайным промежутком, например: "pitch" "20,30" (параметр pitch для каждого следующего воспроизведения звука будет определяться случайным образом между 20 и 30. Есть дополнительный параметр:
time (время в секундах) - промежуток между воспроизведениями звука, также может быть случайным
Для воспроизведения случайного звука используется такая конструкция:
"rndwave"
{
"wave" "mysound/zvuk1.wav"
"wave" "mysound/zvuk2.wav"
}
playsoundscape - это как бы набор звуков в наборе, т.е. в данном параметре будет проигрываться не один или несколько звуков, а целый отдельный набор звуков (soundscape) со своими параметрами. Этот набор звуков должен присутствовать в текущем файле скрипта. Чтобы разобраться в том, как можно использовать данное правило, нужно некоторое время попрактиковаться. Но я считаю, что этот параметр не особо важен и не так часто используется (скорее всего, в силу своей сложности)
name - имя набора звуков, который будет воспроизводиться в данном правиле
position (0-7) - звук, имеющий номер данной позиции, воспроизводиться не будет
positionoverride (0-7) - все звуки, которые имеют позицию, будут воспроизводится только из этой позиции
ambientpositionoverride (0-7) - все звуки, которые не имеют позицию, будут воспроизводится только из этой позиции
volume - громкость звуков
К счастью, на этом всё. Сложно, но иначе никак. Очень надеюсь, что вы хоть что-то поняли из того, что я написал выше. Понять это стоит свеч, ведь только с помощью soundscap'ов можно сделать достаточно красивую и реалистичную звуковую обстановку
Комментарии пользователей сайта:
[Sound] S_StartSound(): Failed to load sound 'soundjesus\lover_1.mp3'. File is missing from disk or is invalid.
Если Вам понравилась эта страница, Вы можете разместить где-нибудь ссылку на неё: